package com.office.doctorsoffice.domain;


//ektos apo tria sxolia methodon ola ta alla sxolia exoun mpei giati de kserw poios apo tous duo tropous
//einai pio swstos gia tin methodo addpatient

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import com.office.doctorsoffice.domain.Appointment;
import java.lang.String;
import java.util.Date;
//import java.util.Hashtable;



public class Visit {
	
	private int Visit_ID;
	private String Visit_Description;
	private Date Visit_Date;
	private String Visit_Status;
	
	   
    private Set<Diagnosis> diagnosi = new HashSet<Diagnosis>();
    
	private Patient patient;
	
	private Payment payment;
	
	ArrayList<Patient> ptn=new ArrayList<Patient>();
	
	ArrayList<Appointment> appoint = new ArrayList<Appointment>();
	
	//private Hashtable Allpatients;
	
public Visit (){}

public Visit (int Visit_ID, String Visit_Description, Date Visit_Date, String Visit_Status, Patient patient){
	this.setVisit_ID(Visit_ID);
	this.setVisit_Description(Visit_Description);
	this.setVisit_Date(Visit_Date);
	this.setVisit_Status(Visit_Status);
	this.patient = patient;
	//Allpatients = new Hashtable();
	}

/**
 * @param visit_ID the visit_ID to set
 */
public void setVisit_ID(int visit_ID) {
	Visit_ID = visit_ID;
}

public Set<Diagnosis> getDiagnosi() {
	return diagnosi;
}

public void setDiagnosi(Set<Diagnosis> diagnosi) {
	this.diagnosi = diagnosi;
}

public Patient getPatient() {
	return patient;
}

public void setPatient(Patient patient) {
	this.patient = patient;
}

public Payment getPayment() {
	return payment;
}

public void setPayment(Payment payment) {
	this.payment = payment;
}

/**
 * @return the visit_ID
 */
public int getVisit_ID() {
	return Visit_ID;
}

/**
 * @param visit_Description the visit_Description to set
 */
public void setVisit_Description(String visit_Description) {
	Visit_Description = visit_Description;
}

/**
 * @return the visit_Description
 */
public String getVisit_Description() {
	return Visit_Description;
}

/**
 * @param visit_Date the visit_Date to set
 */
public void setVisit_Date(Date visit_Date) {
	Visit_Date = visit_Date;
}

/**
 * @return the visit_Date
 */
public Date getVisit_Date() {
	return Visit_Date;
}

/**
 * @param visit_Status the visit_Status to set
 */
public void setVisit_Status(String visit_Status) {
	Visit_Status = visit_Status;
}

/**
 * @return the visit_Status
 */
public String getVisit_Status() {
	return Visit_Status;
}

//prosthetei enan astheni sto arraylist
void addPatient(int PatientID, String LastName, String FirstName, String Address, String City, 
				int ZipCode, String Phone, String Email){
	
	Patient ptn1=new Patient(PatientID,LastName, FirstName, Address, City, ZipCode, Phone, Email);
	ptn.add(ptn1);
	System.out.println("Patient added");
}


// dimiourgei ena rendezvous
void addAppointment(int appointmentid, Date date){
	
	Appointment appoint1=new Appointment(appointmentid, date);
	appoint.add(appoint1);
	System.out.println("appointment is fixed ");
}

//diagrafei ena randezvous
void removeAppointment(int appointmentid){
	
	appoint.remove(appointmentid);
}



//public void addPatient(int PatientID, String LastName, String FirstName, String Address, String City, 
//                          int ZipCode, String Phone, String Email) {
//          Patient newPatient = new Patient(PatientID,LastName, FirstName, Address, City, ZipCode, Phone, Email);
//            Allpatients.put(PatientID,LastName);
//}

//public void modifyPatient(int PatientID, String LastName, String FirstName, String Address, String City, 
//                          int ZipCode, String Phone, String Email) {
//    Patient patientToChange = (Patient) Allpatients.get(PatientID);
//    patientToChange.setLastname(LastNameNew);
//    }

//public Patient findPatient(int PatientID) {
//    return (Patient) Allpatients.get(PatientID);
//    }


}